virtual CRuntimeClass* GetRuntimeClass( ) const;
Возвращаемое значение
Указатель на структуру CRUNTIMECLASS, соответствующую классу этого объекта, никогда не NULL.
Замечания
Имеется одна структура CRUNTIMECLASS для каждого класса унаследованного от CObject. Элементы структуры следующие:
LPCSTR m_lpszClassName Строка с нулевым символом в конце, содержащая имя класса ASCII. Int m_nObjectSize Размер объекта, в байтах. Если объект имеет элементы данных,которые указывают на распределенную память, размер той памяти не включен. UINT m_wSchema Номер схемы (- 1 для классов не умеющих преобразовываться в последовательную форму). См. макрокоманду IMPLEMENT_SERIAL для описания номера схемы. CObject * (PASCAL* m_pfnCreateObject) () Указатель функции к заданному по умолчанию конструктору, который создает объект вашего класса (допустимый только если класс поддерживает динамическое создание, иначе возвращает NULL). CRUNTIMECLASS* (PASCAL* m_pfn_GetBaseClass) () Если ваше приложение динамически связано с AFXDLL версией MFC, указатель на функцию которая возвращает структуру CRUNTIMECLASS базового класса. CRUNTIMECLASS* m_pBaseClass Если ваше приложение статически связано с MFC, указатель на структуру CRUNTIMECLASS базового класса.
Эта функция требует использования макрокоманды IMPLEMENT_DYNAMIC или IMPLEMENT_SERIAL в реализации класса. Вы получите неправильные результаты иначе.
Пример
// См. CObList::CObList для просмотра класса CAge, используемого в CObject примерах. // пример для CObject::GetRuntimeClass CAge a(21); CRuntimeClass* prt = a.GetRuntimeClass(); ASSERT( strcmp( prt->m_lpszClassName, "CAge" ) == 0 );